package top.infopub.mgr.bpa.service;


import com.github.pagehelper.Page;
import top.infopub.dto.bpa.DeviceCotDto;
import top.infopub.generic.GenericService;
import top.infopub.mgr.bpa.domain.DeviceCotDomain;
import top.infopub.mgr.bpa.domain.DeviceLedgerDomain;
import top.infopub.mgr.bpa.vo.ContractManageVo;
import top.infopub.mgr.bpa.vo.DeviceCotVo;
import top.infopub.model.bpa.Basic;
import top.infopub.model.bpa.DeviceCot;
import top.infopub.model.mkt.ProjectAttachment;

import java.text.ParseException;
import java.util.List;
import java.util.Map;


public interface DeviceCotService extends GenericService<DeviceCot, String> {

    /**
     * 根据条件查询分页数据
     * @param page
     * @param deviceCotVo
     * @return 
     * @see
     */
    Page<DeviceCotDomain> selectPageByDomainWhere(Page<DeviceCotDomain> page,
                                                  DeviceCotVo deviceCotVo) throws ParseException;

    /**
     * 设备合同台账
     * @param page
     * @param contractManageVo
     * @return
     * @see
     */
    Page<DeviceLedgerDomain> selectByLedger(Page<DeviceLedgerDomain> page,
                                            ContractManageVo contractManageVo) throws ParseException;
    /*详情*/
    DeviceCotDto queryById(String id);

    List<Map<String, String>> projectDropDownBox();

    Basic projectBasic(String proCode);

    int save(DeviceCotDto dto, List<ProjectAttachment> attachmentList);

    DeviceCot findById(String id);

    List<Map<String, String>> projectCompanyBox();



//    /**
//     * 根据条件查询-我审批的分页数据
//     * @param page
//     * @param deviceCotVo
//     * @return
//     * @see
//     */
//    Page<DeviceCotDomain> selectMyCheckByDomainWhere(Page<DeviceCotDomain> page,
//                                                     DeviceCotVo deviceCotVo);
//
//    /**
//     * 新增设备合同
//     * @param deviceCot
//     * @param deviceCotPrices
//     * @param deviceCotAtts
//     * @see
//     */
//    void save(DeviceCotVo deviceCot, List<DeviceCotPrice> deviceCotPrices,
//              List<DeviceCotAtt> deviceCotAtts);
//
//    /**
//     * 根据id查询记录详情
//     * @param id 主键id
//     * @return
//     * @see
//     */
//    DeviceCotVo queryById(String id);
//
//    /**
//     * 补充签订设备合同
//     * @param deviceCot
//     * @param deviceCotAtts
//     * @see
//     */
//    void sign(DeviceCotVo deviceCot, List<DeviceCotAtt> deviceCotAtts);
//
//    /**
//     * 根据项目编号查询最新的记录
//     */
//    DeviceCotDomain selectByProCode(String proCode);
//
//    /**
//     * 根据合同名称计算对内结算中的 期数(已审批通过)
//     */
//    int countByName(String names);
//
//    /**
//     * 查询设备合同的所有信息
//     */
//    List<DeviceCot> selectByDeviceCots();
//
//    /**
//     * 根据条件查询设备合同记录
//     * @param deviceCotWhere
//     * @return
//     * @see
//     */
//    List<DeviceCot> selectByDeviceCot(DeviceCot deviceCotWhere);

}